Determination of network performance characteristics

ABSTRACT

Systems and methods for testing network performance and communicating network device information are disclosed. The preferred embodiments of the present invention enhance the standard ICMP echo or ping protocol, while still maintaining backward compatibility. Furthermore, the network performance testing can be based on different qualities of service or types of service. This allows the network testing to be useful in real-time applications such as voice and/or video.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This present application claims priority to several copending U.S. provisional applications that were all filed on Jun. 24, 2002 and also are each incorporated by reference in their entireties herein. The copending U.S. provisional applications, which are incorporated by reference in their entireties herein, and to which priority is claimed, are listed by the following U.S. serial numbers and titles:

-   -   60/391,098—“Auto Topology Discover Method for Layer 3 Networks”     -   60/391,121—“Method for Automatic Discovery of Network Core Type”     -   60/391,053—“Method for Determination of Virtual Circuit         Characteristics in Layer 3 Networks”

Furthermore, the present application is one of three related patent applications that are being filed on the same day. The three patent applications listed by attorney docket number and title are the following:

-   -   61607-1720—“Automatic Discovery of Network Node Addresses”     -   61607-1730—“Automatic Discovery of Network Core Type”     -   61607-1740—“Determination of Network Performance         Characteristics”

Also, the patent application with attorney docket number 61607-1720, entitled “Automatic Discovery of Network Node Addresses”, and filed the same day is incorporated by reference in its entirety herein. In addition, the patent application with attorney docket number 61607-1730, entitled “Automatic Discovery of Network Core Type”, and filed the same day is incorporated by reference in its entirety herein.

TECHNICAL FIELD

The present disclosure generally is related to network performance measurement and, more particularly, is related to systems and methods for measuring transmission delays through networks.

BACKGROUND

The Transmission Control Protocol/Internet Protocol (TCP/IP) protocol suite normally used on the Internet has included an Internet Message Control Protocol (ICMP) that is commonly used in echo testing or ping and trace route applications. In general, the Internet standard ping or ICMP echo has a request/response format, wherein one device sends an ICMP echo request and another device responds to a received ICMP echo request with a transmitted ICMP echo response. Normally, IP devices are expected to implement the ICMP protocol as part of the support for IP to be able to use ICMP for testing. Internet RFC 792, entitled “Internet Control Message Protocol: DARPA Internet Program Protocol Specification” at least partially describes the behavior of ICMP. The ICMP echo message has a type field, a code field, a checksum field, an identifier field, a sequence number field, and a data field. According to RFC 792, “The data received in the echo message must be returned in the echo reply message.” Thus, RFC compliant ping responders or ICMP echo reply message responders are supposed to copy the received data field in an echo request message directly into the data field of the transmitted echo response message.

Furthermore, the primary version of the Internet Protocol (IP) used on the Internet today is known as IP version 4 or IPv4. However, a newer version of IP has been defined and is seeing some use as IP version 6 or IPv6. In addition, there is a newer version of ICMP known as ICMP version 6 or ICMPv6 as described at least partially in RFCs 1885 and 2463, which are both entitled “Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification”. According to RFC 2463, “Every [IPv6] node MUST implement an ICMPv6 Echo responder function that receives Echo Requests and sends corresponding Echo Replies. A[n IPv6] node SHOULD also implement an application-layer interface for sending Echo Requests and receiving Echo Replies, for diagnostic purposes.” Thus, responding to ICMP echo requests normally is a necessary function in supporting IPv4 and/or IPv6 standards. The ICMPv6 RFCs 1885 and 2464 goes on to specify that the data field of an ICMP echo response contains the “data from the invoking Echo Request message.” Therefore, both ICMP and ICMP v6 associated with IPv4 and IPv6, respectively, specify that the data field in an ICMP echo reply message is to essentially contain a copy of the data received in the corresponding ICMP echo request message.

Moreover, the ICMP echo protocol basically is a two-way echo in which one initiating device and/or process starts the communication by transmitting an echo request message, which may be then received by an echo responder process. The echo responder process, generally located on another device, receives the echo request message and responds with an echo reply back to the initiating process. Once the initiating device and/or process receives the response or times out waiting on the response, the two-way echo exchange of messages is complete. Although the echo request and echo response normally are performed between processes on two different devices, one skilled in the art will be aware that a device can ping its own IP address implying that the echo request and echo responder reply processes are on the same device. In addition, the loopback address of network 127.0.0.0 in IPv4 can be used to allow a device to loopback outbound echo request messages back into the device's own incoming echo request responder processes. IPv6 has a loopback functionality as well.

This copying of data exactly in the ICMP echo response is somewhat wasteful because the responder generally does not convey that much if any information back to the ICMP echo request initiating device. Arguably the initiating device could compute bit error rate (BER) statistics on the transmitted versus the received data field in ICMP echo packets. However, such physical layer issues as BER statistics normally are not as relevant for network layer IP datagranis that already include various error control code mechanisms. Arguably the device running the responding process can communicate information to the device running the initiating process by having the device running the original responding process initiate its own echo request and wait for an echo response from the original initiating device. However, such a solution results in four packets with a first echo request from a local device responded to by a first echo response from a remote device and with a second echo request from the remote device responded to by a second echo response from the local device.

Also, the identifier and/or sequence number in ping packets generally has allowed the ping to be used by a device to determine the round-trip delay from the time an ICMP echo request packet is sent to the time corresponding to when an associated received ICMP echo request is received back at the initiating device. Furthermore, ping packets generally convey little or no information about the type of device initiating the ping.

Moreover, although IPv4 has Type of Service (ToS) fields in the IP datagram, these fields have become more important as the services used over the Internet and networks using Internet technology have grown from basic computer data communication to also include real-time applications such as voice and/or video. Various Type of Service (ToS) in IPv4 and IPv6 have been used in implementing various (Quality of Service) QoS characteristics that are defined for different classes of service and/or service level agreements (SLAs). Furthermore, one skilled in the art will be aware of the differentiated services Internet RFCs as well.

Thus, there exists a need to address some of these and other limitations of the current ICMP echo protocol generally without having an adverse on the large embedded base of IP devices that utilize the standard ICMP and ICMPv6 protocols of today.

SUMMARY

Systems and methods for determining network performance characteristics are disclosed. In general, the systems and methods may be used as enhancements to existing protocols such as, but not limited to, ICMP and ICMPv6. The systems and methods may involve replying to reply messages to support a three-way message communication to measure network performance characteristics.

Other systems, methods, features and/or advantages will be or may become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features and/or advantages be included within this description and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. Also, the flow charts only show one preferred embodiment of steps that may be used in the present invention. One skilled in the art will be aware that flow chart steps may often be performed in different orders and may even be performed in parallel in some cases. All these variations on acceptable orderings of the steps are intended to be with the scope of the present invention.

FIG. 1 is a timing diagram comparing the behavior of the current standard ping responder with the ping responder behavior of the preferred embodiments of the present invention.

FIG. 2 is a timing diagram showing the packets exchanged in the preferred embodiments of the present invention.

DETAILED DESCRIPTION

Although the standard ping protocol of ICMP echo is well known to one of ordinary skill in the art, the following Internet RFCs at least partially describe the ICMP protocol associated with IPv4 and the ICMPv6 protocol associated with IPv6 with each of the following RFCs incorporated by reference in their entireties herein: RFC 760, entitled “DOD Standard Internet Protocol”; RFC 777, entitled “Internet Control Message Protocol”; RFC 791, entitled “Internet Protocol: DARPA Internet Program Protocol Specification”; RFC 792, entitled “Internet Control Message Protocol: DARPA Internet Program Protocol Specification”; RFC 950, entitled “Internet Standard Subnetting Procedure”; RFC 1256, entitled “ICMP Router Discovery Messages”; RFC 1788, entitled “ICMP Domain Name Messages”; RFC 2521, entitled “ICMP Security Failures Messages”; RFC 1739, entitled “A Primer On Internet and TCP/IP Tools”; RFC 2151, entitled “A Primer On Internet and TCP/IP Tools and Utilities”; RFC 1393, entitled “Traceroute Using an IP Option”; RFC 1885, entitled “Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification”; RFC 2463, entitled “Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification”; RFC 1970, entitled “Neighbor Discovery for IP Version 6 (IPv6)”; RFC 2461, entitled “Neighbor Discovery for IP Version 6 (IPv6)”; and RFC 3122, entitled “Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification”.

Furthermore, both Douglas E. Corner and W. Richard Stevens have written multi-volume books on TCP/IP that generally organize and summarize some of the information found in various Internet Request for Comments (RFCs), which generally are the standards documents of the Internet. Specifically, Douglas E. Comer's TCP/IP book volumes generally have been issued in several editions, and “Internetworking with TCP/IP, Volume 1, Fourth Edition” by Douglas E. Corner with ISBN 0130183806 and a listed publication date in 2000 is incorporated by reference in its entirety herein. Furthermore, W. Richard Stevens' three volumes on TCP/IP include “TCP/IP Illustrated, Volume 1: The Protocols” with ISBN 0201633469 and a listed publication date in 1994, which is incorporated in its entirety by reference herein.

As used herein, the standard ping described in the RFCs is known as a two-way ping because the ping process corresponds to communicating a first packet as an ICMP echo request followed by communicating a second packet in a reverse direction as an ICMP reply. The preferred embodiments of the present invention extend the ping or ICMP echo protocol to support the exchange of three echo packets with one request and two responses, while still maintaining backward compatibility with the Internet standard two-way ICMP ping.

In general, the extension to the ping protocol includes the initiating device encoding some information in the ping echo request message that allows a target responding to an initiating device to recognize that the initiating device supports the extended or enhanced ping functionality of the preferred embodiments of the present invention. Several possible non-limiting fields for encoding this special identifier (ID) information include the ICMP echo fields for identifiers, sequence numbers, and/or data as all these fields generally are copied by the ping responding device in generating the echo response message. However, if the target or responding device supports the preferred embodiments of the present invention, then it will recognize that the initiating device has identified its support for the preferred embodiments of the present invention in the incoming ping echo request message. The target/responding device then notifies the initiating device that the target/responding device supports the enhanced operation of the preferred embodiments of the present invention by modifying the echo response message in at least one of the identifier, sequence number, and/or data fields. Although such modification violates the RFC standard ping process, the initiating device has already indicated its support for the enhanced functionality in the original ping echo request message.

FIG. 1 shows this behavior in more detail with an initiating device A 103 and a target/responding device B 107. The initiating device A 103 sends a control message request with a special ID using a protocol such as but, not limited to, ICMP and/or ICMPv6. The target/responding device B 107 may respond in the standard manner of ICMP (and/or ICMPv6) by copying the identifier, sequence number, and data fields to indicate that it does not support enhanced ping operation of the preferred embodiments of the present invention. Alternatively, if the target/responding device B 107 does support the enhanced ping/ICMP echo operation, it responds by altering at least one of the identifier, sequence number, and/or data fields to communicate to the initiating device A 103 that the target does support the enhanced functionality of the preferred embodiments of the present invention. Thus, target/responding device B 107 responds to control message request 111 with either control message reply 113 that is not modified or with control message reply 117 that is modified. The modified special ID of control message 117 indicates to the initiating device A 103 that the target/responding device B 107 does indeed support the enhanced operation of the preferred embodiments of the present invention.

FIG. 2 shows more of the behavior of the enhanced operation of the preferred embodiments of the present invention. In FIG. 2 initiating device A 203 sends a control message request 211 such as, but not limited to, an ICMP echo request, with a special ID. Target/responding device B 207 supports the enhanced operation of the preferred embodiments of the present invention and responds with a control message reply 217 with a modified special ID indicating the support of the enhanced operation of the preferred embodiments. When initiating device A 203 receives a control message reply 217 with the modified special ID, the initiating device A 203 becomes informed that the target/responding device B 207 supports the enhanced processing of the preferred embodiments of the present invention.

This enhanced operation of the preferred embodiments of the present invention allows both the initiating device A 203 and the target/responding device B 207 to inform each other of the support for the enhanced operation. In addition, the mechanism generally is completely backward compatible with the standard RFC ping or ICMP echo. With the knowledge that both the initiating device A 203 and the target/responding device B 207 support the enhanced operation, the standard two-way request response mechanism of ping can be relaxed as can the standard ping requirement that the identifier, sequence number, and data fields are exactly copied in the ICMP response without adding any new information.

Relaxing the requirement on information carried in an ICMP echo message allows the initiating device A 203 to communicate information in the control message request 211 such as, but not limited to, device A information, and device A's timestamp of when the control message was sent. When the target/responding device B 207 receives the control message request 211 from initiating device A 203, it can log its own packet receipt timestamp of device B's (207) clock. When target device B gets ready to send control message reply 217, subtracting device B's clock timestamp at the time of reception from device B's timestamp at the time of transmission will calculate the amount of processing time taken for device B to process the received control message request 211 and generate the control message reply 217. Furthermore, device B 207 has been informed about some addition information on device A 203 in receiving the device A information in the control message request 211. In forming the control message reply 217, device B 207 may include device B information, the processing time taken by device B, and the device B timestamp when the control message reply is generated and/or transmitted.

When device A 203 receives control message reply 217 from device B 207, it gains potentially new information about device B in the device B information. Furthermore, device A 203 is able to accurately calculate the network round trip delay without including the effects of slow processing at device B 207. The round trip network delay from device A to device B and back is equal to the timestamp at which device A received control message reply 217 minus device A's timestamp at which device A sent control message request 211 minus the processing time taken by device B to respond to control message request 211 and generate control message reply 217.

Furthermore, in breaking the standard two-way request-reply paradigm of standard RFC ping, device A 203 can actually reply back to device B's 207 control message reply 217 by sending another control message reply 219. In control message reply 219, device A can now include the processing time taken at device A between receipt of control message reply 217 and generation and/or transmission of control message reply 219. When device B 207 receives control message reply 219 back, device B 207 can accurately calculate the round-trip network delay without including the processing time by taking the time stamp when device B 207 receives control message reply 219 and subtracting both the timestamp when device B 207 sent control message reply 217 and the processing time used by device A that is included in the information contained in control message reply 219.

At the end of this process, both device A 203 and device B 207 have additional information about each other. Some non-limiting examples of the types of device information that might be communicated between devices A 203 and B 207 include, but are not limited to: far end virtual circuit ID, far end device name, far end device type, transmission timestamp, ICMP echo message processing time, and forwarded paths. Furthermore the preferred embodiments of the present invention allow devices A 203 and B 207 to have an accurate measurement of the round trip network performance without the distortion of the processing time taken by the two devices. Standard two-way ping only results in a measurement of the round-trip delay for one device, and the round-trip delay measurement in standard two-way ping generally is less accurate than the preferred embodiments of the present invention because standard two-way ping does not account for processing time delay. In addition, unlike using two standard two-way pings to attempt to obtain the round-trip delay for both devices, only three packets are needed to determine and exchange this information between devices A 203 and B 207, which results in a (3−4)/4=25% reduction in the number of packets.

Moreover, these techniques of the preferred embodiments of the present invention can be applied for each type of service (ToS) or QoS mechanisms that can be encoded in the packets carrying the ICMP. Thus, the preferred embodiments of the present invention can collect network statistics about the performance of various service level agreements and paths with different levels of quality of service (QoS). These types of network performance statistics collection are more and more useful as Internet technology is used to support real-time applications such as voice and video in addition to its historical role of supporting bulk data transmission for less delay sensitive traffic. Also, up-to-date information on current network performance is useful in determining whether additional data flows or streams can be accommodated and admitted into the network without significant performance degradations. Thus, the preferred embodiments of the present invention can provide input into the flow admission control mechanisms of a network.

It should be emphasized that the above-described embodiments are merely possible examples of implementations, which are set forth for a clear understanding of the principles of the invention. Many variations and modifications may be made to the above-described embodiments. All such modifications and variations are intended to be included herein within the scope of this disclosure. 

1. A method of communicating messages for network testing, the method comprising the steps of: receiving a first reply message; and transmitting a second reply message responsive to receiving the first reply message.
 2. The method of claim 1, further comprising the step of transmitting an initial message, wherein the first reply message is received responsive to the initial message.
 3. The method of claim 2, further comprising the step of computing at least one network performance characteristic based on the initial message and the first reply message.
 4. The method of claim 3, wherein the at least one performance characteristic comprises network transit time.
 5. The method of claim 1, wherein the first reply message and the second reply message are Internet Control Message Protocol (ICMP) echo reply messages.
 6. A method of communicating messages for network testing, the method comprising the steps of: transmitting a first reply message; and receiving a second reply message responsive to transmitting the first reply message.
 7. The method of claim 6, further comprising the step of receiving an initial message, wherein the first reply message is transmitted responsive to receiving the initial message.
 8. The method of claim 7, further comprising the step of computing at least one network performance characteristic based on the first reply message and the second reply message.
 9. The method of claim 8, wherein the at least one performance characteristic comprises network transit time.
 10. The method of claim 6, wherein the first reply message and the second reply message are Internet Control Message Protocol (ICMP) echo reply messages.
 11. A system to communicate messages for network testing, the system comprising: logic configured to receive a first reply message; and logic configured to transmit a second reply message responsive to receiving the first reply message.
 12. The system of claim 11, further comprising logic configured to transmit an initial message, wherein the first reply message is received responsive to the initial message.
 13. The system of claim 19, further comprising logic configured to compute at least one network performance characteristic based on the initial message and the first reply message.
 14. The system of claim 13, wherein the at least one performance characteristic comprises network transit time.
 15. The system of claim 11, wherein the first reply message and the second reply message are Internet Control Message Protocol (ICMP) echo reply messages.
 16. The system of claim 11, wherein the network testing varies based on quality of service (QoS).
 17. The system of claim 16, wherein the quality of service (QoS) affects at least one real-time application.
 18. The system of claim 17, wherein the at least one real-time application is a video service.
 19. The system of claim 17, wherein the at least one real-time application is a voice service.
 20. A system to communicate messages for network testing, the system comprising: logic configured to transmit a first reply message; and logic configured to receive a second reply message responsive to transmitting the first reply message.
 21. The system of claim 20, further comprising the logic configured to receive an initial message, wherein the first reply message is transmitted responsive to receiving the initial message.
 22. The system of claim 21, further comprising logic configured to compute at least one network performance characteristic based on the first reply message and the second reply message.
 23. The system of claim 22, wherein the at least one performance characteristic comprises network transit time.
 24. The system of claim 20, wherein the first reply message and the second reply message are Internet Control Message Protocol (ICMP) echo reply messages.
 25. The system of claim 20, wherein the network testing varies based on quality of service (QoS).
 26. The system of claim 25, wherein the quality of service (QoS) affects at least one real-time application.
 27. The system of claim 26, wherein the at least one real-time application is a video service.
 28. The system of claim 26, wherein the at least one real-time application is a voice service.
 29. The method of claim 20, wherein the first reply message and the second reply message are Internet Control Message Protocol (ICMP) echo reply messages. 